سلام
یکی دیگر از دستورات کنترلی ، دستور switch میباشد.
از این دستور میتوان بجای if و else های متعدد استفاده کرد
مثلا فرض کنید میخواهیم به ازای اعداد 1 تا 7 روزهای هفته متناظر با آنها را چاپ کنیم.
یک راه این است که از دستور if استفاده کنیم.
در اینصورت باید اینگونه بنویسیم:
if ($a==1)
echo "شنبه";
elseif ($a==2)
echo "یکشنبه";
elseif ($a==3)
echo "دوشنبه";
.
.
.
و همینطور الی آخر
اما همینکار را میتوانیم با دستور switch اجرا کنیم
switch ($a){
case "1":echo "شنبه";break;
case "2":echo "یک شنبه";break;
case "3":echo "دو شنبه";break;
case "4":echo "سه شنبه";break;
case "5":echo "چهار شنبه";break;
case "6":echo "پنج شنبه";break;
case "7":echo "جمعه";break;
}
حتما شما هم قبول دارید که کار کردن با دستور switch بسیار ساده تر و خوانا تر میباشد.
نکته : حتما به یاد داشته باشید که در انتهای هر case باید از دستور break استفاده کنید تا کنتل برنامه به انتهای switch منتقل شود.
اگر از break استفاده نکنید کنترل برنامه به case بعدی منتقل میشود و این موجب بروز خطا در برنامه میشود.
به مثال زیر دقت کنید:
switch ($a){
case "1":
case "2":
case "3":echo "فروردین";break;
case "4":
case "5":
case "6":
case "7":echo "اردیبهشت";break;
}
در این مثال در صورتیکه مقدار a برابر 1 یا 2 یا 3 باشد عبارت فروردین چاپ میشود و درصورتیکه مقدار a برابر 4 یا 5 یا 6 و یا 7 باشد عبارت اردیبهشت چاپ میگردد.
نکته : از عبارت default هم میتوانیم در انتهای دستور switch استفاده کنیم . عبارت default مانند عبارت else عمل میکند . یعنی هر حالتی غیر از حالتهای گفته شده در case را پوشش میدهد.
switch ($a){
case "1":
case "2":
case "3":echo "فروردین";break;
case "4":
case "5":
case "6":
case "7":echo "اردیبهشت";break;
default :echo "خرداد";break;
}
موفق باشید